中文版GPT-3来了?智源研究院发布清源 CPM —— 以中文为核心的大规模预训练模型
清源 CPM(Chinese Pretrained Models)是北京智源人工智能研究院和清华大学研究团队合作开展的大规模预训练模型开源计划,清源计划是以中文为核心的大规模预训练模型。首期开源内容包括预训练中文语言模型和预训练知识表示模型,可广泛应用于中文自然语言理解、生成任务以及知识计算应用,所有模型免费向学术界和产业界开放下载,供研究使用。
语言模型是指对自然语言文本进行概率建模的模型,它不仅可以估计任意一个给定文本序列的概率,也可以用来预测文本序列中某个位置上词的出现概率,是自然语言处理中最基本的问题。
在这一态势下,亟需建立以中文为核心的超大规模预训练模型。为此,北京智源人工智能研究院和清华大学研究团队合作开展大规模预训练模型,并发布清源 CPM (Chinese Pretrained Models) 研究计划,旨在推动中文自然语言处理的研究与应用。清源 CPM 计划将依托智源研究院新建的人工智能算力平台,建立以中文为核心的超大规模预训练模型,进行基于超大规模预训练语言模型的少次学习能力以及多任务迁移能力研究,探索更具通用能力的语言深度理解技术。2020 年 11 月中旬,CPM 开放第一阶段的26 亿参数规模的中文语言模型 (CPM-LM) 和217亿参数规模的结构化知识表示模型 (CPM-KM) 下载,以及相应的系统演示。
关于预训练模型的大量实验表明,更大的模型参数和更多的预训练数据,通常能够带来更好的下游任务效果,这类模型被证明在各种少样本学习 NLP 任务中十分有效。传统预训练模型往往需要经过有监督训练数据微调 (Fine-tuning),才能解决各种自然语言处理任务。而第一版 CPM 中文语言模型与 GPT-3 等预训练模型类似,仅需要通过少次、单次学习甚至零次学习,就能完成不同自然语言处理任务,具备一定的常识和认知的泛化能力。CPM 模型从大规模的中文语料库中学习了通用的语言模式,有望显著提升中文自然语言处理各任务的性能。初步的实验表明,CPM 模型能够用于问题解答、摘要和对话以及生成各种文本包括随笔、小说、代码、电子表格等。
2模型特点
与已有的中文预训练模型相比,本次发布的清源 CPM 大规模预训练模型具有以下特点:
1. 学习能力强:能够在多种自然语言处理任务上,进行零次学习或少次学习达到较好的效果。
2. 语料丰富多样:收集大量丰富多样的中文语料,包括百科、小说、对话、问答、新闻等类型。
3. 行文自然流畅:基于给定上文,模型可以续写出一致性高、可读性强的文本,达到现有中文生成模型的领先效果。
4. 模型规模大:本次发布的 CPM-LM 的参数规模为 26 亿,预训练中文数据规模100 GB,使用了 64 块 V100 GPU 训练时间约为 3 周。CPM-KG 的参数规模分别为217亿,预训练结构化知识图谱为 WikiData 全量数据,包含近 1300 个关系、8500万实体、4.8 亿个事实三元组,使用了 8 块 V100 GPU 训练时间约为 2 周。3模型训练方法
目前预训练模型的模型参数与数据规模均在不断增长,给训练任务带来极大的挑战。具体而言,数据规模的增大导致训练时间成倍数增长,模型参数规模的增大导致单卡无法容纳整个模型的参数。面对这些挑战,则需要设计高效的大规模训练框架,能够支持庞大的训练规模并有效降低训练时间。
本次发布的大规模预训练模型,单块 GPU 上的存储与计算单元难以承受其训练过程。因此,需要将模型在多个 GPU 之间分配参数,进行并行化训练。CPM 模型预训练过程分布在多块 GPU 上,采用层内并行的方法进行训练,并基于当前已有的成熟技术,减少同步提高通讯速率。
在硬件设施方面,为训练该 CPM 模型,共有 64 块 V100 显卡投入使用。经过预训练的 CPM 模型可以用来促进诸多下游中文任务,例如对话,论文生成,完形填空和语言理解等等。
当前主流的并行策略主要分为数据并行、模型并行和流水并行,具体来说:
● 数据并行是将每一批次的数据切分成几部分,分别发送到模型的多个镜像中进行训练。这些模型的参数保持一致,且在计算梯度时进行同步,保证梯度更新之后参数的一致性。数据并行主要解决了训练数据过大,单个设备无法存放的问题。
● 模型并行主要是为解决模型参数规模过大无法被单卡存放的问题。模型并行会将模型中的参数矩阵切分成几块,分别存放在不同的设备上,同时将训练中的超大规模矩阵计算分布到多块卡上。通过对模型中矩阵操作的分块,一方面可以降低单个设备上的模型存储负担;另一方面,并行执行也能极大优化计算时间,减少每张卡的计算量。
● 流水并行则是针对训练批次进行优化,将训练数据在不同层间的计算流水化,以提高计算集群的利用效率。在实际的训练中,以上三种并行模型常常会一起使用。与模型并行相比,流水并行能够降低并行执行过程中产生的设备之间的通信量,降低通信时间。
在利用上述三种成熟优化的基础上,CPM计划对模型并行中的通信进行进一步优化,削减通信时间,提升运行效率。这部分优化将在下一阶段工作中体现。
清源 CPM 使用头条新闻标题分类 (TNEWS,采样为4分类),IFLYTEK应用介绍分类 (IFLYTEK,采样为4分类),中文自然语言推断 (OCNLI,3分类) 任务作为文本分类任务的基准。具体做法是,先输入分类样本,再输入“该文章的类别为/该介绍的类别为/两句话的关系为”,要求模型直接生成标签,四个标签中概率最高的标签作为预测结果。在无监督设定下,不同规模的清源 CPM 在文本分类任务上的精确度如下表所示。
清源 CPM 能够在无监督的设定下达到比随机预测 (TNEWS/IFLYTEK/OCNLI 随机预测精确度分别为0.25/0.25/0.33) 好得多的精确度。
4.4. 自动问答
CPM 使用 DuReader 和CMRC2018 作为自动问答任务的基准,要求模型从给定的段落中抽取一个片段作为对题目问题的答案。其中DuReader 由百度搜索和百度知道两部分数据组成。在无监督的设定下,不同规模的 CPM 模型的表现如下表所示。
其中单样本是指在测试时,从数据集中随机抽取一个正确的 “(段落,问题,答案)” 三原组,插入到用于评价的样例前,作为 CPM 模型生成答案的提示。零样本是指直接使用 CPM 模型预测给定段落和问题的答案。在单样本设定下,CPM 能从给定的样本中学习到生成答案的模式,因此效果总是比零样本设定更好。由于模型的输入长度有限,多样本输入的场景将在未来进行探索。
4.5. 实体生成
CPM 采用 XLORE 中的几种常见的关系三元组作为实体生成任务的基准。在少样本设定 (把少量真实样本拼在待预测样本前作为提示) 下,不同规模的 CPM 模型的 BLEU-1 值如下表所示。我们针对同一种关系类别 (表格中的类别) ,给定 N 个三元组 (实体,关系,实体),再拼接待预测样本,让模型预测对应的尾实体。
表格汇报了 XLORE 中十种常见关系模型预测结果的 BLEU-1 值,可以看出参数量越大时,模型对于预测实体效果越好。同时,模型在给定 2 个样本时就可以达到不错的效果,大部分时候 N=2 和 N=4 的效果是接近的。
● 阶段1 (2020年10月-12月):中文大规模预训练语言模型,含约 30 亿参数,训练数据包括 100GB 中文数据。
● 阶段2 (2021年01月-06月):以中文为核心多语言大规模预训练语言模型,含约 200 亿参数,训练数据包括 500GB 以中文为核心的多语言数据。
● 阶段3 (2021年07月-09月):知识指导的大规模预训练语言模型,含约 1000 亿参数,训练数据包括 1TB 以中文为核心的多语言数据和亿级实体关系图谱。
清源 CPM 计划将积极配备算力、数据和人力,注重开展原创研究,尽早实现与国际顶尖机构在超大规模预训练模型技术方面并跑,提升中文自然语言的深度理解和生成能力。在此基础上,清源 CPM 计划探索超大规模预训练模型学习机制与人脑学习机制之间的联系与区别,支持认知神经科学、心理学和语言学等跨学科交叉研究,从数据驱动深度学习无法回避的可解释性差、鲁棒性差、容易受到攻击的瓶颈入手,以离散符号表示的知识指导与数据驱动的神经网络有机融合、人脑认知机制启发等原始创新为突破口,建立下一代人工智能的技术体系。
与此同时,基于清源 CPM 模型的文本深度理解和智能生成能力,智源研究院也将积极与产业界合作,在智能客服、个性推荐、文本生成、自动编程等方面,探索新型的人工智能应用和商业模式。
[1] ERNIE: Enhanced Language Representation with Informative
Entities. ACL 2019.
[2] KEPLER: A Unified Model for Knowledge Embedding and
Pre-trained Language Representation. TACL 2020.
[3] A Knowledge-Enhanced Pretraining Model for Commonsense
Story Generation. TACL 2020.
[4] SentiLARE: Sentiment-Aware Language Representation
Learning with Linguistic Knowledge. EMNLP 2020.
[5] Train No Evil: Selective Masking for Task-Guided
Pre-Training. EMNLP 2020.
[6] A Large-Scale Chinese Short-Text Conversation Dataset.
NLPCC 2020.
[7] Language Generation with Multi-Hop Reasoning on
Commonsense Knowledge Graph. EMNLP 2020.